Datos generales

Column

Mapa de población de la provincia de Buenos Aires

Column

Población por partidos

Proporción de población por género

Column

Resumen de datos provinciales 2022

Elaborado en R Markdown en lenguaje R en base a datos estadísticos del Censo Nacional de Población, Hogares y Viviendas 2022, publicados por el Instituto Nacional de Censos y Estadísticas INDEC. Descarga de datos espaciales disponible en IDE Tandil.

Gauges

135

Gauges

17569053

Gauges

6701808

Gauges

12.44

Población

Tabla de datos POBLACIÓN

---
title: "<b>Datos provisorios - Censo Nacional de Población, Vivienda y Hogares 2022</b>"
output: 
  flexdashboard::flex_dashboard:
    social: ["menu"]
    source_code: embed
    orientation: columns
---

```{r setup, include=FALSE}
library(flexdashboard)
library(sf)
library(leaflet)
library(dplyr)
library(DT)
library(plotly)

```
```{r include=FALSE}
## Data import

# Buenos Aires province data
datos_2022_bsas <- st_read("./shp/censo2022.gpkg")
datos_2022_bsas <- st_transform(datos_2022_bsas, 4326)
```

Datos generales
==================

Column {data-width=40%}
-----------------------------------------------------------------------

### Mapa de población de la provincia de Buenos Aires
```{r}
argenmap_url <- "https://wms.ign.gob.ar/geoserver/gwc/service/tms/1.0.0/capabaseargenmap@EPSG%3A3857@png/{z}/{x}/{-y}.png"
wms_argenmap_tiles <- "https://wms.ign.gob.ar/geoserver/capabaseargenmap/gwc/service/wmts?request=GetCapabilities"
```

```{r Map}
# Crear mapa en blanco, incluye provedores de teselas
blank_map = leaflet()%>%
  
  addTiles(argenmap_url, group = "Argenmap (default)")%>%
  addWMSTiles(
    wms_argenmap_tiles,
    layers= "Capa base Argenmap",
    options = WMSTileOptions(format = "image/png", transparent = TRUE),
    tileOptions(tms = TRUE),
    attribution = "ArgenMap - IGN")%>%
addProviderTiles(providers$OpenStreetMap, group = "OSM")

# Defino los cortes de datos y la paleta de colores a asignar
bins <- c(0, 75000, 200000, 500000, 750000, Inf)
pal <- colorBin("YlOrRd", domain = datos_2022_bsas$tot_pob_2022, bins = bins)

# Agrego datos al mapa
map = blank_map%>%
  addPolygons(data = datos_2022_bsas, group="Partidos",
              fillColor = ~pal(datos_2022_bsas$tot_pob_2022),
              opacity = 1,
              fillOpacity = 0.75,
              color = "#363636",
              weight = 1,
              highlightOptions = highlightOptions(
                weight = 3,
                color = "#fff",
                fillColor = "#ff0",
                fillOpacity = 0.6,
                bringToFront = TRUE),
              label=~nombre,
              popup =~paste("<h3>Datos INDEC 2022</h3><b>Partido:</b>",datos_2022_bsas$nombre,"<br>", "<b>Población 2022:</b>",datos_2022_bsas$tot_pob_2022," habitantes"))

# Configuro centroide del mapa y zoom, agrego controles y leyenda
map%>%
  setView(lng =-59.9586,lat =-37.2, zoom = 7)%>%
  addLayersControl(
    baseGroups = c("Argenmap (default)","OSM"),
    overlayGroups = c("Partidos"))%>% 
  addLegend("bottomright", 
            pal = pal, 
            values = datos_2022_bsas$tot_pob_2022, 
            title= "Cantidad de habitantes",
            opacity = 1)
```

Column {data-width=45%}
-----------------------------------------------------------------------

###  Población por partidos

```{r}
# Remuevo las geometrías de la capa
tabla_sin_geom <- st_drop_geometry(datos_2022_bsas)

# Ordeno el dataframe por "tot_pob_2022" en orden ascendente y convierto 'nombre' en un factor ordenado
tabla_poblacion_sorted <- tabla_sin_geom %>%
  arrange(tot_pob_2022) %>%
  mutate(nombre = factor(nombre, levels = nombre))

# Creo el gráfico de barras con la variable "tot_pob_2022" ordenada, destaco Tandil
poblacion_total_plot <- plot_ly(data = tabla_poblacion_sorted, 
                                x = ~nombre, 
                                y = ~tot_pob_2022, 
                                type = "bar",
                                marker = list(color = ifelse(tabla_poblacion_sorted$nombre == "Tandil", "#ff7f0e", "#1f77b4")))

# Asigno estilo a los valores del eje X y agrego el título del eje Y
poblacion_total_plot%>% layout(title = "",
                               xaxis = list(title = "",tickfont = list(size = 9)),
                               yaxis = list(title = "Población"))

```

### Proporción de población por género

```{r}
# Reemplazo valores NA con '0' en el campo "tot_x"
tabla_sin_geom <- tabla_sin_geom %>% mutate(tot_x = ifelse(is.na(tot_x), 0, tot_x))

# Creo df con datos de población por género
resumen_pob_genero <- data.frame(cbind(datos=c(pob_fem=sum(tabla_sin_geom$tot_mujer),
                                   pob_masc=sum(tabla_sin_geom$tot_masc),
                                   pob_x=sum(tabla_sin_geom$tot_x)
)
))

# Defino los nombres de los valores y la paleta de colores del gráfico
var_names_genero <- c('Mujer/Femenina','Varón/Masculino','Ninguna de las anteriores')
plot_colors <- c('#9467bd','#6db2feD','#36c636')

# Creo el gráfico en base al resumen de población por género
pie_chart_genero  <- plot_ly(resumen_pob_genero, labels = ~var_names_genero, values = ~datos, type = 'pie', marker = list(colors = plot_colors))
pie_chart_genero
```


Column {data-width=15%}
-----------------------------------------------------------------------
### 
<!-- Resumo el origen de los datos en un párrafo complementario -->
<div style="padding-inline: 1rem;">
<h3>Resumen de datos provinciales 2022</h3>
<p style="text-align: justify;">Elaborado en R Markdown en lenguaje R en base a datos estadísticos del Censo Nacional de Población, Hogares y Viviendas 2022, publicados por el Instituto Nacional de Censos y Estadísticas <a href="https://www.indec.gob.ar/indec/web/Nivel4-Tema-2-41-165">INDEC</a>. Descarga de datos espaciales disponible en <a href="http://mapa.tandil.gov.ar/IdeTandil/">IDE Tandil</a>.<p>
</div>

### Gauges

```{r}
# Cuento cantidad de filas en la tabla para conocer la cantidad de partidos
cantidad_partidos <- nrow(tabla_sin_geom)
valueBox(cantidad_partidos, caption = "Partidos en la provincia", icon="fa fa-university")
```

### Gauges


```{r}
# Sumo la cantidad total de población 
pob_total_2022 <- sum(tabla_sin_geom$tot_viv_2022)
valueBox(pob_total_2022, caption = "Personas", icon="fa fa-users", color = 'success')
```

### Gauges

```{r}
# Obtengo el total de viviendas 2022
total_viviendas_2022 <- sum(tabla_sin_geom$tot_viv_part)+sum(tabla_sin_geom$tot_viv_colec)
valueBox(total_viviendas_2022, caption = "Viviendas", icon="fa fa-home", color = 'info')

```


### Gauges

```{r}
# Realizo el cálculo de la variación intercensal en base a datos INDEC 2010
pob0 <- 15625084
pob1 <- pob_total_2022

var_intercensal <- round(((pob1-pob0) / pob0 *100),2)
valueBox(var_intercensal, caption = "Variación intercensal", icon="fa fa-percent", color = 'warning')
```


Población
==================
Tabla de datos POBLACIÓN

```{r Tabla población}
# Extraigo campos determinados y creo nuevo dataframe
tabla_poblacion <- data.frame(tabla_sin_geom[,c("nombre",
                                                 "tot_mujer",
                                                 "porc_mujer",
                                                 "tot_masc",
                                                 "porc_masc",
                                                 "tot_x",
                                                 "porc_x",
                                                 "pob_viv_part",
                                                 "pob_viv_colec",
                                                 "pob_calle",
                                                 "tot_pob_2022")])
# Elaboro una lista de nuevos nombres
new_poblacion_names <- c('Partido',
                      'Mujer/Femenina',
                      '%',
                      'Varón/Masculino',
                      '%',
                      'Ninguna de las anteriores',
                      '%',
                      'Población en viviendas particulares',
                      'Población en viviendas colectivas',
                      'Población en situación de calle',
                      'Total de población')

# Imprimo la tabla reestructurada utilizando nombres nuevos
datatable(tabla_poblacion, colnames = new_poblacion_names, rownames = TRUE, options = list(pageLength = 15))
```